package mirrormonkey.state;

import mirrormonkey.framework.ConnectionInfo;
import mirrormonkey.framework.entity.EntityData;
import mirrormonkey.framework.entity.StaticEntityData;
import mirrormonkey.state.messages.StateUpdateMessage;
import mirrormonkey.util.listeners.ManagedListener;
import mirrormonkey.util.listeners.MapListener;

@MapListener
public interface StateUpdateListener extends ManagedListener {

	public void beforeInboundUpdate(ConnectionInfo inboundFrom,
			StateUpdateMessage message, EntityData entityData,
			StaticEntityData staticEntityData);

	public void afterInboundUpdate(ConnectionInfo inboundFrom,
			StateUpdateMessage message, EntityData entityData,
			StaticEntityData staticEntityData);

	public void beforeOutboundUpdate(EntityData i, StaticEntityData staticData,
			StateUpdateMessage message);

	public void afterOutboundUpdate(EntityData i, StaticEntityData staticData,
			StateUpdateMessage message);
}
